const marked = require('marked');
const Comment = require('../lib/mongo').Comment;

module.exports = {
  // 创建一个留言
  created: function create(comment) {
    return new Promise(function(resolve, reject) {
      Comment.create(comment, function(err, ret) {
        if (err) {
          reject(err);
        } else {
          resolve(ret);
        }
      });
    });
  },

  // 通过留言 id 获取一个留言
  getCommentById: function (commentId) {
    return Comment.findOne({ _id: commentId }).exec();
  },

  // 通过留言 id 删除一个留言
  delCommentById: function (commentId) {
    return Comment.deleteOne({ _id: commentId }).exec();
  },

  // 通过文章 id 删除该文章下面的所有留言
  delCommentsByPostId: function (postId) {
    return Comment.deleteMany({ postId: postId }).exec();
  },

  // 通过文章 id 获取该文章下所有留言， 按留言创建时间升序
  getComments: function (postId) {
    return Comment
      .find({ postId: postId })
      .populate({ path: 'author', model: 'User' })
      .sort({ _id: 1 })
      .exec();
  },

  // 通过文章 id 获取该文章下留言数
  getCommentsCount: function (postId) {
    return Comment.countDocuments({ postId: postId }).exec();
  }
}